package com.keyholesoftware.trango.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface TrangoEntity {

	String addedByColumn() default "USER_ADDED";

	String addedWhenColumn() default "TIMESTAMP_ADDED";

	Class<?>[] entityListeners() default {};

	String identityColumn() default "ID";

	Class<?> identityColumnType() default Long.class;

	String lastUpdatedColumn() default "TIMESTAMP_CHANGED";

	boolean manualIdentity() default false;

	boolean noAuditBlock() default false;

	String schema() default "";

	String table() default "";

	boolean typeCode() default false;

	Class<?> typeCodeColumnType() default String.class;

	String typeCodeDescriptionColumn() default "TVALUE";

	String typeCodeIdentityColumn() default "CODE";

	String updatedByColumn() default "USER_CHANGED";
}
